home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
data
/
nyan_e2
/
nyane2_a.plp
< prev
next >
Wrap
Text File
|
1993-11-30
|
19KB
|
808 lines
/********* 自動的にNiftyに接続し,目的の処理を行う v1.04a用 *********/
%FNameTop logd |{\UP\};
%IndexFName FNameTop|{INDEX.TXT};
%SaveFName FNameTop|{SAVE.TXT};
var IndexLine[82];
var status[3];
var ReLogin[3];
var next[3];
var contime[2];
var nowtime[2];
var sectime[2];
var rtn2[700];
rtn2:=rtn;
%TimeOut{
%errlog logd|{\AUTO.ERR};
write(errlog,@laststr(128));
case(Mode,
{AUTO},{
discon;
stopterm;
},{OPER},{
Bell;
select({一定時間内に期待した文字列が受信されませんでした},
300,{discon; stop;
},{ 回線を切断し,処理を打ち切る },{ discon; stop;
},{ 処理を打ち切る },{ stop;
},{ 手動操作で復旧する },{ MANUAL;
});
});
};
%rec2{[FILE]
delfile(FILE);
receive(FILE);
};
%autoacc2{
var Where1[8];
var Where2[8];
var Where3[3];
var Where4[3];
var Where4o[3];
var FMesNO[2];
var FNAME1[8];
var FNAME2[8];
var FNAME3[8];
var FNAME4[8];
var FNAMES[64];
var FNAMEC[2];
var FLibNO[2];
/********** NIFTYに入る処理 **********/
%NIF{
footnote({ NIFTY-Serveに入ります});
type({GO NIF\n});
loop({
wait(60,{TimeOut},
{に戻る\n>},{type({1\n});im({No})},
{の表示\n>},{type({1\n});im({No})},
{\n>}, {type({\n});im({Yes})})
});
contime := @tail(@daylong,{:});
wait(60,{TimeOut},{\n>},);
Where4 := {NIF};
};
/********** CUGに入る処理 **********/
%CUG{
footnote({ CUGに入ります});
type({GO }|cugname|{\n});
contime := @tail(@daylong,{:});
wait(60,{TimeOut},{\n>},);
Where4 := {CUG};
};
/********** 未読のメールをダウンする **********/
%GoMail{
type({MAIL\n});
loop({
wait(20,{TimeOut},
{\n>},{
type({SET MENU OFF\n});
im({Yes});
},{\nMAIL>},{
Where1:={MAIL};
type({SET PAGE OFF\n});
wait(30,{TimeOut},{\nMAIL>});
im({No});
},{後ほどのご利用をお願いします。},{
wait(60,{TimeOut},{\n>});
im({No});
});
});
};
%Mail2 {[prompt,post]
loop({
wait(180,{TimeOut},
{バイナリーのため、表示出来ません◆\n},{Bflg:={Yes};im({Yes})},
{NAPLPSのデコーダーが必要です。準備 (1:OK 2:NG) \n:},
{type({2\n}); Bflg:={Yes}; im({Yes})},
{2:NG) \n:} ,{type({2\n});im({Yes})},
{終了)\n>} ,{type({\n}); im({Yes})},
{終了)\n:} ,{type({2\n});im({Yes})},
{\naction:} ,{type(post|{\n});im({Yes})},
{終了)\n>} ,{im({No})},
prompt ,{im({No})}
)
})
};
%MailRall{[prompt]
var Rno[2];
wait(120,{TimeOut},
{\n番号},{
Rno:=@tail(@laststr,{\n受信数:},{\n番号});
case(@getchar(Rno,2,1)={ },{Yes},{
Rno:=@getchar(Rno,1,1);
});
});
wait(120,{TimeOut},{\n>},{stoprec});
loop({
type(Rno|{,});
Rno:=Rno-1;
im(Rno>0);
});
receive(MailLog);
type(@xc({08})|{\n});
Mail2(prompt,{DEL});
};
%Bmail2{[post,kind]
var fno[4];
%nametop logd|{\MAIL\};
%Rfname{
fno:=0;
loop({ fno:=fno+1;
%Bin @filechk(nametop|{MAIL}|fno|{.LZH});
%Npb @filechk(nametop|{MAIL}|fno|{.NPB});
im(Bin={Yes}||Npb={Yes});
});
%SUP nametop|{MAIL}|fno|{.SUP};
%BIN nametop|{MAIL}|fno|{.LZH};
%NPB nametop|{MAIL}|fno|{.NPB};
delfile(SUP);
write(SUP,@memo(1,curline,1));
case(kind={B},{Yes},{type(BIN|{\n})});
case(kind={N},{Yes},{type(NPB|{\n})});
};
loop({
wait(6000,{TimeOut},
{終了)\n:} ,{Rfname; im({Yes})},
{終了)\n>} ,{type({\n}); im({Yes})},
{しない)\n:} ,{type(post|{\n});im({Yes})},
{終了)\n>} ,{im({No})},
{\nMAIL>} ,{im({No})}
)
});
};
%PreBmail{
test(,{GoMail},{\nMAIL>},);
rec2(TitleF);
type({READ\n});
wait(120,{TimeOut},{\n>},{stoprec});
type({E\n});
wait(120,{TimeOut},{\nMAIL>});
};
%Bmail{
mclear(1);
mread(TitleF,1);
curline:=@nolmemo(1);
loop({
curline:=curline-1;
%R @getchar(@memo(1,curline,1),2,3);
%T @getchar(@memo(1,curline,1),30,1);
case(T={B}||T={N},
{Yes},{
case(mail,
{NEW},{
case(@getchar(@memo(1,curline,1),1,1)={ },
{Yes},{
type({DOWN }|R|{ PROT:BPL\n});
Bmail2({2},T);
});
},{ALL},{
type({DOWN }|R|{ PROT:BPL\n});
Bmail2({1},T);
});
});
im(curline>4);
});
};
%MailDown{[prompt]
%MailLog logd|{\MAIL\MAIL.LOG};
%TitleF logd|{\MAIL\MAILLIST.LOG};
var curline[2];
var Bflg[3];
wait(20,{TimeOut},prompt);
case(Rmail={},
{Yes}, { GoMail;
},{No},{ %ForumDir logd|{\}|@head(Rmail,{ });
GoForum(Rmail);
});
Bflg:={No};
mkdir(logd,{MAIL});
test(,{
},{\nMAIL>},{
case(mail,
{NEW},{
receive(MailLog);
type({READ NEW\n});
Mail2({\nMAIL>},{SAV});
stoprec;
},{ALL},{
rec2(TitleF);
type({READ\n});
MailRall({\nMAIL>});
stoprec;
});
},{\nFORUM>},{
rec2(TitleF);
type({RMAIL\n});
case(mail,
{ALL},{
MailRall({\nFORUM>});
stoprec;
},{NEW},{
var Read[3];
Read:={No};
wait(120,{TimeOut},{\n>},{stoprec});
mclear(1);
mread(TitleF,1);
curline:=@nolmemo(1);
loop({
curline:=curline-1;
case(@getchar(@memo(1,curline,1),1,1)={ },
{Yes},{
case(@getchar(@memo(1,curline,1),30,1),
{ }, {
%R @tail(@getchar(@memo(1,curline,1),1,3),{ });
type(R|{,});
Read:={Yes};
},{B},{
Bflg:={Yes};
});
});
im(curline>4);
});
case(Read,
{Yes},{
receive(MailLog);
type(@xc({08})|{\n});
Mail2({\nFORUM>},{SAV});
stoprec;
});
});
});
case(Bflg,{Yes},{
case(Mode,
{AUTO},{ PreBmail; Bmail;
},{OPER},{
PreBmail;
select({ バイナリメールを受信しますか?},5,{ Bmail;
},{ は い },{ Bmail;
},{ いいえ },{
});
});
});
Where1:={MAIL};
};
/********** HP,パティオに入る **********/
%GoHPpatio{[HorP,name,pass]
var cond[1];
cond:=0;
test(, {type({GO }|HorP|{\n})},
{分のHP)\n:}, {type(name|{\n})},
{\nHP>}, {case(HorP,
{HP},{type({MOVE }|name|{\n});
},,{type({GO PATIO\n});
}); },
{ご案内\n>}, {type({1\n})},
{分のパティオ)\n:},{type(name|{\n})},
{に入る\n>}, {type({2\n})}
);
loop({
wait(60,{TimeOut},
{に入る\n>}, {case(cond==0,
{Yes}, {type({2\n}); Where1:=HorP; im({Yes});
},{No},{im({No});
});
},{ご案内\n>}, {case(cond==0,
{Yes}, {type({1\n}); Where1:=HorP; im({Yes});
},{No},{im({No});
});
},{ています◆}, {cond:=1;
im({Yes});
},{りません◆}, {wait(60,{TimeOut},
{\nHP>}, { cond:=1;
type({E\n});
im({Yes});
},{\n>},{ im({No});
});
},{後ほどのご利用をお願いします。},
{wait(10,{TimeOut},{\n>});
im({No});
},{分のHP)\n:},{type(name|{\n}); im({Yes})
},{分のパティオ)\n:},{type(name|{\n});im({Yes})
},{ワード\n:}, {type(pass|{\n}); im({Yes})
},{\nHP>}, {type({SET PAGE OFF\n});
Where2:=name;
wait(60,{TimeOut},{\nHP>});
im({No})
},{\n>}, {type({1\n});im({Yes})
},{\nPATIO(N)>},{type({SET PAGE OFF\n});
Where2:=name;
wait(60,{TimeOut},{\nPATIO(N)>});
im({No})
},{\nPATIO(P)>},{type({SET PAGE OFF\n});
Where2:=name;
wait(60,{TimeOut},{\nPATIO(P)>});
im({No})
});
});
};
/********** HPの未読をダウンする **********/
%oneHP {[name,pass,fname]
footnote({ HPの受信処理をしています});
rec2(fname|{.tlt});
GoHPpatio({HP},name,pass);
test(,{stoprec},{\nHP>},{
stoprec;
receive(fname|{.log});
type({READ NEW\n});
wait(300,{TimeOut},{\nHP>});
stoprec;
case(id=name && GUEST<>{NG},{Yes},{
rec2(fname|{.usr});
type({GUEST\n});
wait(300,{TimeOut},{\nHP>});
stoprec;
})
})
};
%HP{
var hp2[500];
mkdir(logd,{HP});
hp2:=hp;
case( Where4<>{NIF},{Yes},NIF);
loop({
%hpset @head(hp2,{,});
hp2:=@body(hp2,{,});
oneHP( @head(hpset,{/}),
@body(hpset,{/},{/}),
logd|{\HP\}|@tail(hpset,{/}));
im(hp2<>{});
});
};
/********** パティオの未読をダウンロードする **********/
%onepatio1{
stoprec;
receive(fname|{.log});
type({MREAD\n});
wait(3000,{TimeOut},{\nPATIO(N)>},,{\nPATIO(P)>});
stoprec;
case(id=name && GUEST<>{NG},{Yes},{
delfile(fname|{.usr});
receive(fname|{.usr});
type({E\n});
wait(300,{TimeOut},{\n>},{type({GUEST\n})});
wait(300,{TimeOut},{\n>});
stoprec;
})
};
%onePatio {[name,pass,fname]
delfile(fname|{.tlt});
footnote({ パティオの受信処理をしています});
receive(fname|{.tlt});
GoHPpatio({PATIO},name,pass);
test(,{stoprec},{\nPATIO(N)>},{onepatio1},{\nPATIO(P)>},{onepatio1});
};
%Patio{
var patio2[200];
mkdir(logd,{PATIO});
case( Where4<>{NIF},{Yes},NIF);
patio2:=patio;
loop({
%patioset @head(patio2,{,});
patio2:=@body(patio2,{,});
onePatio(@head(patioset,{/}),
@body(patioset,{/},{/}),
logd|{\PATIO\}|@tail(patioset,{/}));
im(patio2<>{});
});
};
/********** フォーラムの未読をダウンロードする **********/
%GoForum{[fname]
%SetMode{
type({SET PAGE OFF\n});
wait(30,{TimeOut},{\nFORUM>});
type({SEND OFF\n});
wait(30,{TimeOut},{\nFORUM>});
type({UST2\n});
wait(60,{TimeOut},{\nFORUM>});
Where1:={FORUM};
Where2:=fname;
Where3:={};
};
%Fname{
wait({60},{TimeOut},{> });
wait({60},{TimeOut},{\n});
FNAMES:=@tail(@laststr(64),{> },{\n});
FNAME1:={};
FNAME2:={};
FNAME3:={};
FNAME4:={};
FNAMEC:=1;
loop({
%fname @head(FNAMES,{ });
FNAMES:=@body(FNAMES,{ or });
case(FNAMEC,
1,{FNAME1:=fname},2,{FNAME2:=fname
},3,{FNAME3:=fname},4,{FNAME4:=fname
});
FNAMEC:=FNAMEC+1;
im(FNAMES<>{})
});
};
%cmark @getchar(fname,1,1);
case(cmark={_},
{Yes},{Where4o:={CUG};
},{No},{Where4o:={NIF};
});
case(Where4<>Where4o,{Yes},{
case(Where4o,{CUG},CUG,,NIF);
});
mkdir(logd,fname);
rec2(ForumDir|{\title}|{.log});
%fname1 @tail({_}|fname,{_});
type({GO }|fname1|{\n});
loop({
wait(30,{TimeOut},
{\n<} ,{Fname; im({Yes});
},{\nmore>} ,{type({\n}); im({Yes});
},{終了)\n>} ,{type({\n}); im({Yes});
},{システム切り替えにつき},{
wait(30,{TimeOut},{\n>});
im({No});
},{現在、サービスは},{
wait(30,{TimeOut},{\n>});
im({No});
},{◆番号又はコマンドを入力},{
wait(30,{TimeOut},{\n>});
im({No});
},{◆現在このフォーラムは},{
wait(30,{TimeOut},{\n>});
im({No});
},{-保守作業の為},{
wait(30,{TimeOut},{\n>});
im({No});
},{終了\n>},{
type({SET MENU OFF\n});
wait(30,{TimeOut},{\nFORUM>});
SetMode;
im({No});
},{\nFORUM>},{
SetMode;
im({No});
})
});
stoprec;
};
%TypeRTN{[ReqMes]
%ccs1{
FMesNO:=ReqMes;
receive(RTNfile);
type({RTN\n});
loop({ wait(1200,{TimeOut},
{\nmore>}, {type({\n}); im({Yes})},
{\n>}, {stoprec; im({No})},
{\n◆現在未読の},{flag:={Yes};
stoprec; im({No})}
);
});
case(flag,
{Yes},{ write(RTNfile,{発言はありません◆\n});
},,{ write(RTNfile,{\n}); type({\n});
wait(30,{TimeOut},{\nCCS(N)>},,{\nCCS(P)>});
type({RC MAX\n});
});
wait(30,{TimeOut},{\nCCS(N)>},,{\nCCS(P)>});
};
%ccs2{
FMesNO:=ReqMes;
wait(30,{TimeOut},{\nCCS(N)>},,{\nCCS(P)>});
};
var flag[3];
%RTNfile ForumDir|{\MES}|ReqMes|{.RTN};
type({MES }|ReqMes|{\n});
wait(30,{TimeOut},{ 未読 :0-\n},ccs2,{\nCCS(N)>},ccs1,
{\nCCS(P)>},ccs1,{\n>});
};
%CCS{[ccsset]
%readall{
%Down3{[boadn]
%CcsNo{[ccsno]
case(@getchar(ccsno,1,1)={ },
{Yes},{im({0}|@getchar(ccsno,2,2))},
{No}, {im(ccsno)});
};
stoprec;
FMesNO:=@CcsNo(boadn);
receive(ForumDir|{\MES}|FMesNO|{.log});
};
loop({
wait(10000,{TimeOut},
{\n>◆次頁はありません◆\n>},
{wait(3,{im({No})},{\n},{im({Yes})});
}, {後ほどのご利用をお願いします。\n>},
{wait(3,{im({No})},{\n},{im({Yes})});
}, {\n- }|FNAME1|{ MES(},
{wait(60,{TimeOut},{)});
Down3(@tail(@laststr,{ MES(},{)}));
im({Yes})
}, {\n- }|FNAME2|{ MES(},
{wait(60,{TimeOut},{)});
Down3(@tail(@laststr,{ MES(},{)}));
im({Yes})
}, {\n- }|FNAME3|{ MES(},
{wait(60,{TimeOut},{)});
Down3(@tail(@laststr,{ MES(},{)}));
im({Yes})
}, {\n- }|FNAME4|{ MES(},
{wait(60,{TimeOut},{)});
Down3(@tail(@laststr,{ MES(},{)}));
im({Yes})
}, {\n- MES(},
{wait(60,{TimeOut},{)});
Down3(@tail(@laststr,{- MES(},{)}));
im({Yes})
});
});
};
test(,,{\nFORUM>},{
footnote({ フォーラム(会議室)の受信処理をしています});
rec2(ForumDir|{\mestitle.log});
type({MES\n});
wait(30,{TimeOut},{\n>});
case(ccsset<>0,{Yes},{
type({MREAD});
case(ccsset<>{},{Yes},{type({ ROOM:}|ccsset)});
type({\n\n});
readall;
});
stoprec;
type({T\n});
wait(30,{TimeOut},{\nFORUM>});
footnote({});
})
};
%Forum{
var f2[700];
var rtnset[50];
var rtnmes[3];
f2:=forum;
loop({
%fnset @head(f2,{/});
%fname @head(fnset,{(});
%ccsset @body(fnset,{(},{)});
%ForumDir logd|{\}|fname;
f2:=@body(f2,{/});
%mae @head(rtn2,fname);
%ushiro @body(rtn2,fname);
rtnset:={};
case(@getchar(ushiro,1,1)={(},{Yes},{
rtnset:=@body(@head(ushiro,{/}),{(},{)});
rtn2:=mae|@body(ushiro,{/});
});
footnote({ フォーラムの受信処理をしています});
GoForum(fname);
CCS(ccsset);
case(rtnset<>{} && rtnset<>0,{Yes},{
footnote({ 未読発言のタイトル一覧を受信しています});
loop({
rtnmes:=@head(rtnset,{,});
rtnset:=@body(rtnset,{,});
case(@nochar(rtnmes),{1},{rtnmes:={0}|rtnmes});
TypeRTN(rtnmes);
im(rtnset<>{});
});
});
im(f2<>{});
});
};
%RTN{
var rtnset[50];
var rtnmes[3];
loop({
%fnset @head(rtn2,{/});
%fname @head(fnset,{(});
%ForumDir logd|{\}|fname;
rtnset:=@body(fnset,{(},{)});
rtn2:=@body(rtn2,{/});
footnote({ 未読発言のタイトル一覧を受信しています});
GoForum(fname);
mkdir(logd,fname);
rec2(ForumDir|{\mestitle.log});
type({MES\n});
wait(30,{TimeOut},{\n>});
stoprec;
case(rtnset<>{} && rtnset<>0,{Yes},{
loop({
rtnmes:=@head(rtnset,{,});
rtnset:=@body(rtnset,{,});
case(@nochar(rtnmes),{1},{rtnmes:={0}|rtnmes});
TypeRTN(rtnmes);
im(rtnset<>{});
});
});
im(rtn2<>{});
});
};
/********** Niftyの課金情報を見る **********/
%bill{
rec2(logd|{\BILL.LOG});
type({GO BILL\n});
wait(30,TimeOut,{\n>});
Where1:={BILL};
Where2:={};
Where3:={};
type({2\n});
wait(60,TimeOut,{\n>});
stoprec;
write(logd|{\BILL.LOG},{\n(}|@daylong|{)});
};
%PostText{
%flag {POST};
DELTXT;
};
%DelOldText{
%flag {DEL};
DELTXT;
};
%Login{
case(ReLogin<>{Yes},{Yes},{
footnote({ NIFTY-Serveへ電話をかけています});
DIAL;
footnote({ NIFTY-Serveの前処理をしています});
});
case(id,{},{
select({ ユーザIDの設定がありません.後は手動で?},10,stop,
{やります},stop,{電話を切ります},{discon; stop})
});
case(ReLogin<>{Yes},{Yes},{
wait(20,{TimeOut},{Connection-ID --->});
type({SVC\n});
});
wait(20,{TimeOut},{Enter User-ID --->});
type(id|{\n});
wait(20,{TimeOut},{Enter Password --->});
delfile(logd|{\title}|{.log});
setcdir2(logd);
receive(logd|{\title}|{.log});
case(pass,
{},{ footnote({ パスワードをキーボードから入れてください});
sendtype({Ch/2});
chat({Yes});
wait(300,{TimeOut},{ようこそ});
chat({No});
sendtype({Line});
footnote({ 前置きの処理をしています});
},,{ type(pass|{\n});
});
contime:=@tail(@daylong,{:});
wait(30,{TimeOut},{\n>});
stoprec;
/* type({SET DLM ON\n});
wait(30,{TimeOut},{\n>}); */
status:={ON};
ReLogin:={No};
};
%SendList{
case(Where1<>{MAIL},{Yes},{GoMail});
rec2(logd|{\MAIL\MAIL_SDL.LOG});
type({SDL\n});
wait(300,{TimeOut},{\nMAIL>},{stoprec});
};
%Mail{
%prompt @tail(@laststr,{\n});
var check[6];
footnote({ メールの受信処理をしています});
type({MCHECK\n});
case(mail,
{NEW},{ check:={未読分};
},{ALL},{check:={届いて};
});
wait(30,{TimeOut},
{\n}|prompt,,
{\n>},,
check,{MailDown({\n}|prompt)}
);
/*SendList;*/
};
%Logout{
case(BILL,
{OK},{
footnote({ NIFTYの課金情報を参照しています});
bill;
},{P},{
nowtime:=@tail(@daylong,{:});
case(contime>nowtime,
{Yes},{ sectime:=60+nowtime-contime;
},{No},{sectime:=nowtime-contime;
});
case(sectime<15,{Yes},{
footnote({ NIFTYの課金情報を参照しています});
bill;
});
});
footnote({ NIFTYの終了処理をしています});
type({bye\n});
wait(30,,{ありがとうございました。\n});
wait(5,,{\n*},{type({OFF\n}); wait(3,,{\nNO CARRIER})});
discon;
footnote({});
};
%PreSEMI{
var return[3];
loop({SEMI; im(return<>{No})});
};
/********** メイン処理 Call Telephone and Send Id ,Password **********/
stopbit(1);
xon({Yes});
rscs({Yes});
click({No});
nattou({Yes});
ctrl({Yes});
esc({Yes});
Where1:={};
Where2:={};
Where3:={};
FMesNO:={};
st:={None};
status:={OFF};
ReLogin:={No};
next:=({No});
rtn2:=rtn;
case(cugname<>{},{Yes},{Where4:={CUG}},{No},{Where4:={NIF}});
Where4o:=Where4;
account(logd|{\ACCOUNT.TXT},
{NIFTY-Serve (}|@getchar(@daylong,12,3)|{)});
case(@filechk(IndexFName),{Yes},DelOldText);
case(proc={Semi},{Yes},PreSEMI,{No},Login);
case(proc<>{Semi},{Yes},{Mail});
case(proc={Down} || proc={Down2} || proc={Both} || proc={Both2},
{Yes},{ case( hp<>{}, {Yes},HP);
case( patio<>{},{Yes},Patio);
case( forum<>{},{Yes},Forum);
case( rtn2<>{}, {Yes},RTN);
case(@filechk(IndexFName),{Yes},{GETPROF;
case(next,{Yes},{DOWNLIB})});
});
case(proc={Up} || proc={Up2} || proc={Both} || proc={Both2},
{Yes},{UPTEXT; case(next,{Yes},{UPTEXT2})});
case(originalplt={Yes},{setcdir2(current); #ORIGINAL.PLT});
case(proc={Read},{Yes},DOWNLIB);
case(proc={Login},{Yes},MANUAL);
case(proc={Down2} || proc={Up2} || proc={Both2},{Yes},{Bell; PreSEMI});
case(proc<>{Semi} && proc<>{Down2} && proc<>{Up2} && proc<>{Both2},
{Yes},Logout);
case(@filechk(IndexFName),{Yes},PostText);
};
setcdir2(logd);
case(@diskrem < (50*1024),
{Yes},{
select({ このディスクの残り容量(}|(@diskrem/1024)|{Kbyte)では不足です},
30,,{ 確 認 })
},{No},{autoacc2;
});